(function(){
  var URL = window.UEDITOR_HOME_URL || getUEBasePath();
  window.UEDITOR_CONFIG = {
    UEDITOR_HOME_URL: URL,
    serverUrl: "/ueditor/",
    toolbars: [
      ['fullscreen', 'source', '|',
        'undo', 'redo', '|',
        'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|',
        'bold', 'italic', 'underline', 'fontborder', 'strikethrough', '|',
        'simpleupload', 'insertimage', 'insertvideo', 'music', 'template', '|',
        'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', '|',
        'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
        'paragraph', 'fontsize', '|',
        'link', 'unlink', '|',
        'horizontal', 'spechars', 'snapscreen', '|',
        'selectall', 'cleardoc', 'removeformat', '|', 'help']],
    charset: "utf-8",
    initialFrameHeight: 480,
    fontsize: [10, 11, 12, 14, 16, 18, 20, 24],
    initialStyle:'p,span{line-height:1em;font-size:14px;}',
    initialContent:'',
    pasteplain:true,
    tabSize:2,
    tabNode:'　',
    imageCompressEnable:false
  };
  function getUEBasePath(docUrl, confUrl){
    return getBasePath(docUrl || self.document.URL || self.location.href, confUrl || getConfigFilePath());
  }
  function getConfigFilePath(){
    var configPath = document.getElementsByTagName('script');
    return configPath[configPath.length - 1].src;
  }
  function getBasePath(docUrl, confUrl){
    var basePath = confUrl;
    if(/^(\/|\\\\)/.test(confUrl)){
      basePath = /^.+?\w(\/|\\\\)/.exec(docUrl)[0] + confUrl.replace(/^(\/|\\\\)/, '');
    }else if(!/^[a-z]+:/i.test(confUrl)){
      docUrl = docUrl.split("#")[0].split("?")[0].replace(/[^\\\/]+$/, '');
      basePath = docUrl + "" + confUrl;
    }
    return optimizationPath(basePath);
  }
  function optimizationPath(path){
    var protocol = /^[a-z]+:\/\//.exec(path)[0], tmp = null, res = [];
    path = path.replace(protocol, "").split("?")[0].split("#")[0];
    path = path.replace(/\\/g, '/').split(/\//);
    path[path.length - 1] = "";
    while(path.length){
      if(( tmp = path.shift() ) === ".."){
        res.pop();
      }else if(tmp !== "."){
        res.push(tmp);
      }
    }
    return protocol + res.join("/");
  }
  window.UE = {
    getUEBasePath: getUEBasePath
  };
})();
